home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / font / GlyphLayout$SDCache.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.6 KB  |  64 lines

  1. package sun.font;
  2.  
  3. import java.awt.Font;
  4. import java.awt.font.FontRenderContext;
  5. import java.awt.geom.AffineTransform;
  6. import java.awt.geom.NoninvertibleTransformException;
  7. import java.awt.geom.Point2D;
  8. import java.util.HashMap;
  9.  
  10. final class GlyphLayout$SDCache {
  11.    public Font key_font;
  12.    public FontRenderContext key_frc;
  13.    public AffineTransform dtx;
  14.    public AffineTransform invdtx;
  15.    public AffineTransform gtx;
  16.    public Point2D.Float delta;
  17.    // $FF: renamed from: sd sun.font.FontStrikeDesc
  18.    public FontStrikeDesc field_0;
  19.    private static final Point2D.Float ZERO_DELTA = new Point2D.Float();
  20.    private static HashMap cache = new HashMap(10);
  21.  
  22.    private GlyphLayout$SDCache(Font var1, FontRenderContext var2) {
  23.       this.key_font = var1;
  24.       this.key_frc = var2;
  25.       this.dtx = var2.getTransform();
  26.       this.dtx.setTransform(this.dtx.getScaleX(), this.dtx.getShearY(), this.dtx.getShearX(), this.dtx.getScaleY(), (double)0.0F, (double)0.0F);
  27.       if (!this.dtx.isIdentity()) {
  28.          try {
  29.             this.invdtx = this.dtx.createInverse();
  30.          } catch (NoninvertibleTransformException var6) {
  31.             throw new InternalError();
  32.          }
  33.       }
  34.  
  35.       float var3 = var1.getSize2D();
  36.       if (var1.isTransformed()) {
  37.          this.gtx = var1.getTransform();
  38.          this.gtx.scale((double)var3, (double)var3);
  39.          this.delta = new Point2D.Float((float)this.gtx.getTranslateX(), (float)this.gtx.getTranslateY());
  40.          this.gtx.setTransform(this.gtx.getScaleX(), this.gtx.getShearY(), this.gtx.getShearX(), this.gtx.getScaleY(), (double)0.0F, (double)0.0F);
  41.          this.gtx.preConcatenate(this.dtx);
  42.       } else {
  43.          this.delta = ZERO_DELTA;
  44.          this.gtx = new AffineTransform(this.dtx);
  45.          this.gtx.scale((double)var3, (double)var3);
  46.       }
  47.  
  48.       int var4 = FontStrikeDesc.getAAHintIntVal(var2.getAntiAliasingHint(), FontManager.getFont2D(var1), (int)Math.abs(var3));
  49.       int var5 = FontStrikeDesc.getFMHintIntVal(var2.getFractionalMetricsHint());
  50.       this.field_0 = new FontStrikeDesc(this.dtx, this.gtx, var1.getStyle(), var4, var5);
  51.    }
  52.  
  53.    public static GlyphLayout$SDCache get(Font var0, FontRenderContext var1) {
  54.       GlyphLayout.SDCache.SDKey var2 = new GlyphLayout.SDCache.SDKey(var0, var1);
  55.       GlyphLayout$SDCache var3 = (GlyphLayout$SDCache)cache.get(var2);
  56.       if (var3 == null) {
  57.          var3 = new GlyphLayout$SDCache(var0, var1);
  58.          cache.put(var2, var3);
  59.       }
  60.  
  61.       return var3;
  62.    }
  63. }
  64.